1. Field of the Invention
The invention relates to computer systems. Additionally, the invention relates to configuration space management for computer servers.
2. Description of the Related Technology
A server is a central computer in a network which manages the common data and supplies this data to workstations in the network. Current operating systems for servers do not by themselves provide the support users need to hot add and swap devices. Hot add refers to the addition of a device on a bus on the server while the server continues to operate. Hot replace refers to the replacement of a device on a bus of the server while the server continues to operate. Hot swap refers to a hot replace with the replacement device being identical to the replaced device. There is a need for the hot add and hot swap capabilities in order to avoid expensive server down time when replacing or adding devices to the server. Such devices include various peripheral devices such as mass storage and network adapters. Such devices are commonly interfaced with the server through various bus systems such as Peripheral Component Interconnect, CardBus, Microchannel, Industrial Standard Architecture (ISA), and Extended ISA (EISA).
One aspect of hot adding and hot swapping of devices that needs to be addressed is the system configuration. In the past in certain bus architectures, the system configuration was fixed prior to system initialization. However, such an approach does not support hot add or hot swap. Such systems also do not provide the ability to change the configuration parameters dynamically through a software interface. When performing a hot swap or hot add on a PCI bus, care must be taken to ensure that resources, such as, memory and I/O space, allocated to the new device do not conflict with concurrently assigned devices. Prior systems have required that for the replacement of a device or the addition of a device, the entire system be powered down, devices be replaced or added, and then the system be powered up and reconfigured.
There is a need for a methods and systems which facilitate the replacement and adding of a devices on a bus on the server while the server continues to operate. There is also a need for systems and methods to ensure that resources, such as, memory and I/O space, allocated to the replacement devices and added devices do not conflict with concurrently assigned devices.